package com.example.tool.bean.business.wechat;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class AddRecordsRequest {
    private String docid;      // 文档ID（必须）
    private String sheet_id;    // 表格ID（必须）
    private String key_type = "CELL_VALUE_KEY_TYPE_FIELD_TITLE"; // key类型（默认字段标题）
    private String keyType = "CELL_VALUE_KEY_TYPE_FIELD_TITLE"; // key类型（默认字段标题）
    private String keyType2 = "CELL_VALUE_KEY_TYPE_FIELD_ID"; // 	key用字段 ID 表示
    private List<Record> records=new ArrayList<>(); // 记录列表（必须）
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Record {
        private Map<String, List<CellValue>> values; // 字段值映射

        @Data
        @NoArgsConstructor
        @AllArgsConstructor
        public static class CellValue {
            private String type; // 值类型：text/number/date等
            private String text; // 文本值
            private Double number; // 数字值
            private Long date; // 日期值（时间戳）

            // 创建文本类型单元格值
            public static CellValue createText(String text) {
                CellValue cell = new CellValue();
                cell.setType("text");
                cell.setText(text);
                return cell;
            }

            // 创建数字类型单元格值
            public static CellValue createNumber(Double number) {
                CellValue cell = new CellValue();
                cell.setType("number");
                cell.setNumber(number);
                return cell;
            }
        }
    }

    // Key类型常量
    public static final String KEY_TYPE_FIELD_TITLE = "CELL_VALUE_KEY_TYPE_FIELD_TITLE";
    public static final String KEY_TYPE_FIELD_ID = "CELL_VALUE_KEY_TYPE_FIELD_ID";
}